package com.mymvpproject.Utils;

import android.content.Context;
import android.widget.Toast;

/**
 * Created by Administrator on 2018/3/28.
 * 当每次显示Tost的时候都会判断当前是否还存在Toast，如果没有我们就创建并且记录创建的时间，然后显示内容。
 * 如果已经存在Toast对象了就记录当前的时间，再次判断内容是否一样，不一样就重新设置Toast显示的内容，并且显示。
 * 如果一样就判断Toast有没有显示结束。没有就继续显示。
 * 最后将第二次记录的时间赋值给第一次记录时间的参数，便于后续判断每一次的显示情况。至此完成。
 */

public class ToastUtils {
    /**
     * 之前显示的内容
     */
    private static String oldMsg;
    private static int oldintres;

    /**
     * Toast对象
     */
    private static Toast toast = null;
    /**
     * 第一次时间
     */
    private static long oneTime = 0;
    /**
     * 第二次时间
     */
    private static long twoTime = 0;

    /**
     * 显示Toast * @param context * @param message
     */
    public static void showToast(Context context, String message) {
        if (toast == null) {
            toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
            toast.show();
            oneTime = System.currentTimeMillis();
        } else {
            twoTime = System.currentTimeMillis();
            if (message.equals(oldMsg)) {
                if (twoTime - oneTime > Toast.LENGTH_SHORT) {
                    toast.show();
                }
            } else {
                oldMsg = message;
                toast.setText(message);
                toast.show();
            }
        }
        oneTime = twoTime;
    }

    /**
     * 根据资源id显示Toast
     */
    public static void showToast(Context context, int resid) {
        if (toast == null) {
            toast = Toast.makeText(context, resid, Toast.LENGTH_SHORT);
            toast.show();
            oneTime = System.currentTimeMillis();
        } else {
            twoTime = System.currentTimeMillis();
            if (resid==oldintres) {
                if (twoTime - oneTime > Toast.LENGTH_SHORT) {
                    toast.show();
                }
            } else {
                oldintres = resid;
                toast.setText(resid);
                toast.show();
            }
        }
        oneTime = twoTime;
    }

}


/*
public class ToastUtils {

    private static Toast mToast;

    public static void init(Context context) {
        mToast = Toast.makeText(context, null, Toast.LENGTH_SHORT);
    }

    public static void show(int resId) {
        mToast.setText(resId);
        mToast.show();
    }

    public static void show(CharSequence charSequence) {
        mToast.setText(charSequence);
        mToast.show();
    }
}
在使用时，可以在应用的Application里做初始化，如下：

@Override
public void onCreate() {
    super.onCreate();
    ToastUtils.init(this);
}
*/

